home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / SoundSprocket.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  19.9 KB  |  616 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        SoundSprocket.h
  3.  
  4.      Contains:    SoundSprocket interfaces
  5.  
  6.      Version:    Technology:    1.7
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c) 1996-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __SOUNDSPROCKET__
  18. #define __SOUNDSPROCKET__
  19.  
  20. #ifndef __MACTYPES__
  21.     #include <MacTypes.h>
  22. #endif
  23.  
  24. #ifndef __EVENTS__
  25.     #include <Events.h>
  26. #endif
  27.  
  28. #ifndef __QD3D__
  29.     #include <QD3D.h>
  30. #endif
  31.  
  32. #ifndef __QD3DCAMERA__
  33.     #include <QD3DCamera.h>
  34. #endif
  35.  
  36. #ifndef __MACERRORS__
  37.     #include <MacErrors.h>
  38. #endif
  39.  
  40.  
  41.  
  42.  
  43. #if PRAGMA_ONCE
  44. #pragma once
  45. #endif
  46.  
  47. #ifdef __cplusplus
  48. extern "C" {
  49. #endif
  50.  
  51. #if PRAGMA_IMPORT
  52. #pragma import on
  53. #endif
  54.  
  55. #if PRAGMA_STRUCT_ALIGN
  56.     #pragma options align=mac68k
  57. #elif PRAGMA_STRUCT_PACKPUSH
  58.     #pragma pack(push, 2)
  59. #elif PRAGMA_STRUCT_PACK
  60.     #pragma pack(2)
  61. #endif
  62.  
  63. /*******************************************************************************
  64.  *    SndSetInfo/SndGetInfo Messages
  65.  ******************************************************************************/
  66. /*    The siSSpCPULoadLimit = '3dll' selector for SndGetInfo fills in a value of    */
  67. /*    type UInt32.                                                                */
  68.  
  69. enum {
  70.     kSSpSpeakerKind_Stereo        = 0,
  71.     kSSpSpeakerKind_Mono        = 1,
  72.     kSSpSpeakerKind_Headphones    = 2
  73. };
  74.  
  75.  
  76. /*    This is the data type is used with the SndGet/SetInfo selector                */
  77. /*    siSSpSpeakerSetup = '3dst'                                                    */
  78.  
  79. struct SSpSpeakerSetupData {
  80.     UInt32                             speakerKind;                /* Speaker configuration                */
  81.     float                             speakerAngle;                /* Angle formed by user and speakers    */
  82.  
  83.     UInt32                             reserved0;                    /* Reserved for future use -- set to 0    */
  84.     UInt32                             reserved1;                    /* Reserved for future use -- set to 0    */
  85. };
  86. typedef struct SSpSpeakerSetupData        SSpSpeakerSetupData;
  87. enum {
  88.     kSSpMedium_Air                = 0,
  89.     kSSpMedium_Water            = 1
  90. };
  91.  
  92.  
  93. enum {
  94.     kSSpSourceMode_Unfiltered    = 0,                            /* No filtering applied                    */
  95.     kSSpSourceMode_Localized    = 1,                            /* Localized by source position            */
  96.     kSSpSourceMode_Ambient        = 2,                            /* Coming from all around                */
  97.     kSSpSourceMode_Binaural        = 3                                /* Already binaurally localized            */
  98. };
  99.  
  100.  
  101.  
  102. struct SSpLocationData {
  103.     float                             elevation;                    /* Angle of the meridian -- pos is up    */
  104.     float                             azimuth;                    /* Angle of the parallel -- pos is left    */
  105.     float                             distance;                    /* Distance between source and listener    */
  106.     float                             projectionAngle;            /* Cos(angle) between cone and listener    */
  107.     float                             sourceVelocity;                /* Speed of source toward the listener    */
  108.     float                             listenerVelocity;            /*Speed of listener toward the source    */
  109. };
  110. typedef struct SSpLocationData            SSpLocationData;
  111.  
  112. struct SSpVirtualSourceData {
  113.     float                             attenuation;                /* Attenuation factor                    */
  114.     SSpLocationData                 location;                    /* Location of virtual source            */
  115. };
  116. typedef struct SSpVirtualSourceData        SSpVirtualSourceData;
  117. /*    This is the data type is used with the SndGet/SetInfo selector                */
  118. /*    siSSpLocalization = '3dif'                                                    */
  119.  
  120. struct SSpLocalizationData {
  121.     UInt32                             cpuLoad;                    /* CPU load vs. quality -- 0 is best    */
  122.  
  123.     UInt32                             medium;                        /* Medium for sound propagation            */
  124.     float                             humidity;                    /* Humidity when medium is air            */
  125.     float                             roomSize;                    /* Reverb model -- distance bet. walls    */
  126.     float                             roomReflectivity;            /*Reverb model -- bounce attenuation    */
  127.     float                             reverbAttenuation;            /*Reverb model -- mix level            */
  128.  
  129.     UInt32                             sourceMode;                    /* Type of filtering to apply            */
  130.     float                             referenceDistance;            /*Nominal distance for recording        */
  131.     float                             coneAngleCos;                /* Cos(angle/2) of attenuation cone        */
  132.     float                             coneAttenuation;            /* Attenuation outside the cone            */
  133.     SSpLocationData                 currentLocation;            /* Location of the sound                 */
  134.  
  135.     UInt32                             reserved0;                    /* Reserved for future use -- set to 0    */
  136.     UInt32                             reserved1;                    /* Reserved for future use -- set to 0    */
  137.     UInt32                             reserved2;                    /* Reserved for future use -- set to 0    */
  138.     UInt32                             reserved3;                    /* Reserved for future use -- set to 0    */
  139.  
  140.     UInt32                             virtualSourceCount;            /*Number of reflections                */
  141.     SSpVirtualSourceData             virtualSource[4];            /*The reflections                        */
  142. };
  143. typedef struct SSpLocalizationData        SSpLocalizationData;
  144. #if TARGET_CPU_PPC
  145. typedef CALLBACK_API_C( Boolean , SSpEventProcPtr )(EventRecord *inEvent);
  146. /*******************************************************************************
  147.  *    Global functions
  148.  ******************************************************************************/
  149. EXTERN_API_C( OSStatus )
  150. SSpConfigureSpeakerSetup        (SSpEventProcPtr         inEventProcPtr);
  151.  
  152. EXTERN_API_C( OSStatus )
  153. SSpGetCPULoadLimit                (UInt32 *                outCPULoadLimit);
  154.  
  155.  
  156. /*******************************************************************************
  157.  *    Routines for Maniulating Listeners
  158.  ******************************************************************************/
  159. typedef struct OpaqueSSpListenerReference*  SSpListenerReference;
  160. EXTERN_API_C( OSStatus )
  161. SSpListener_New                    (SSpListenerReference *    outListenerReference);
  162.  
  163. EXTERN_API_C( OSStatus )
  164. SSpListener_Dispose                (SSpListenerReference     inListenerReference);
  165.  
  166. EXTERN_API_C( OSStatus )
  167. SSpListener_SetTransform        (SSpListenerReference     inListenerReference,
  168.                                  const TQ3Matrix4x4 *    inTransform);
  169.  
  170. EXTERN_API_C( OSStatus )
  171. SSpListener_GetTransform        (SSpListenerReference     inListenerReference,
  172.                                  TQ3Matrix4x4 *            outTransform);
  173.  
  174. EXTERN_API_C( OSStatus )
  175. SSpListener_SetPosition            (SSpListenerReference     inListenerReference,
  176.                                  const TQ3Point3D *        inPosition);
  177.  
  178. EXTERN_API_C( OSStatus )
  179. SSpListener_GetPosition            (SSpListenerReference     inListenerReference,
  180.                                  TQ3Point3D *            outPosition);
  181.  
  182. EXTERN_API_C( OSStatus )
  183. SSpListener_SetOrientation        (SSpListenerReference     inListenerReference,
  184.                                  const TQ3Vector3D *    inOrientation);
  185.  
  186. EXTERN_API_C( OSStatus )
  187. SSpListener_GetOrientation        (SSpListenerReference     inListenerReference,
  188.                                  TQ3Vector3D *            outOrientation);
  189.  
  190. EXTERN_API_C( OSStatus )
  191. SSpListener_SetUpVector            (SSpListenerReference     inListenerReference,
  192.                                  const TQ3Vector3D *    inUpVector);
  193.  
  194. EXTERN_API_C( OSStatus )
  195. SSpListener_GetUpVector            (SSpListenerReference     inListenerReference,
  196.                                  TQ3Vector3D *            outUpVector);
  197.  
  198. EXTERN_API_C( OSStatus )
  199. SSpListener_SetCameraPlacement    (SSpListenerReference     inListenerReference,
  200.                                  const TQ3CameraPlacement * inCameraPlacement);
  201.  
  202. EXTERN_API_C( OSStatus )
  203. SSpListener_GetCameraPlacement    (SSpListenerReference     inListenerReference,
  204.                                  TQ3CameraPlacement *    outCameraPlacement);
  205.  
  206. EXTERN_API_C( OSStatus )
  207. SSpListener_SetVelocity            (SSpListenerReference     inListenerReference,
  208.                                  const TQ3Vector3D *    inVelocity);
  209.  
  210. EXTERN_API_C( OSStatus )
  211. SSpListener_GetVelocity            (SSpListenerReference     inListenerReference,
  212.                                  TQ3Vector3D *            outVelocity);
  213.  
  214. EXTERN_API_C( OSStatus )
  215. SSpListener_GetActualVelocity    (SSpListenerReference     inListenerReference,
  216.                                  TQ3Vector3D *            outVelocity);
  217.  
  218. EXTERN_API_C( OSStatus )
  219. SSpListener_SetMedium            (SSpListenerReference     inListenerReference,
  220.                                  UInt32                 inMedium,
  221.                                  float                     inHumidity);
  222.  
  223. EXTERN_API_C( OSStatus )
  224. SSpListener_GetMedium            (SSpListenerReference     inListenerReference,
  225.                                  UInt32 *                outMedium,
  226.                                  float *                outHumidity);
  227.  
  228. EXTERN_API_C( OSStatus )
  229. SSpListener_SetReverb            (SSpListenerReference     inListenerReference,
  230.                                  float                     inRoomSize,
  231.                                  float                     inRoomReflectivity,
  232.                                  float                     inReverbAttenuation);
  233.  
  234. EXTERN_API_C( OSStatus )
  235. SSpListener_GetReverb            (SSpListenerReference     inListenerReference,
  236.                                  float *                outRoomSize,
  237.                                  float *                outRoomReflectivity,
  238.                                  float *                outReverbAttenuation);
  239.  
  240. EXTERN_API_C( OSStatus )
  241. SSpListener_SetMetersPerUnit    (SSpListenerReference     inListenerReference,
  242.                                  float                     inMetersPerUnit);
  243.  
  244. EXTERN_API_C( OSStatus )
  245. SSpListener_GetMetersPerUnit    (SSpListenerReference     inListenerReference,
  246.                                  float *                outMetersPerUnit);
  247.  
  248.  
  249. /*******************************************************************************
  250.  *    Routines for Manipulating Sources
  251.  ******************************************************************************/
  252. typedef struct OpaqueSSpSourceReference*  SSpSourceReference;
  253. EXTERN_API_C( OSStatus )
  254. SSpSource_New                    (SSpSourceReference *    outSourceReference);
  255.  
  256. EXTERN_API_C( OSStatus )
  257. SSpSource_Dispose                (SSpSourceReference     inSourceReference);
  258.  
  259. EXTERN_API_C( OSStatus )
  260. SSpSource_CalcLocalization        (SSpSourceReference     inSourceReference,
  261.                                  SSpListenerReference     inListenerReference,
  262.                                  SSpLocalizationData *    out3DInfo);
  263.  
  264. EXTERN_API_C( OSStatus )
  265. SSpSource_SetTransform            (SSpSourceReference     inSourceReference,
  266.                                  const TQ3Matrix4x4 *    inTransform);
  267.  
  268. EXTERN_API_C( OSStatus )
  269. SSpSource_GetTransform            (SSpSourceReference     inSourceReference,
  270.                                  TQ3Matrix4x4 *            outTransform);
  271.  
  272. EXTERN_API_C( OSStatus )
  273. SSpSource_SetPosition            (SSpSourceReference     inSourceReference,
  274.                                  const TQ3Point3D *        inPosition);
  275.  
  276. EXTERN_API_C( OSStatus )
  277. SSpSource_GetPosition            (SSpSourceReference     inSourceReference,
  278.                                  TQ3Point3D *            outPosition);
  279.  
  280. EXTERN_API_C( OSStatus )
  281. SSpSource_SetOrientation        (SSpSourceReference     inSourceReference,
  282.                                  const TQ3Vector3D *    inOrientation);
  283.  
  284. EXTERN_API_C( OSStatus )
  285. SSpSource_GetOrientation        (SSpSourceReference     inSourceReference,
  286.                                  TQ3Vector3D *            outOrientation);
  287.  
  288. EXTERN_API_C( OSStatus )
  289. SSpSource_SetUpVector            (SSpSourceReference     inSourceReference,
  290.                                  const TQ3Vector3D *    inUpVector);
  291.  
  292. EXTERN_API_C( OSStatus )
  293. SSpSource_GetUpVector            (SSpSourceReference     inSourceReference,
  294.                                  TQ3Vector3D *            outUpVector);
  295.  
  296. EXTERN_API_C( OSStatus )
  297. SSpSource_SetCameraPlacement    (SSpSourceReference     inSourceReference,
  298.                                  const TQ3CameraPlacement * inCameraPlacement);
  299.  
  300. EXTERN_API_C( OSStatus )
  301. SSpSource_GetCameraPlacement    (SSpSourceReference     inSourceReference,
  302.                                  TQ3CameraPlacement *    outCameraPlacement);
  303.  
  304. EXTERN_API_C( OSStatus )
  305. SSpSource_SetVelocity            (SSpSourceReference     inSourceReference,
  306.                                  const TQ3Vector3D *    inVelocity);
  307.  
  308. EXTERN_API_C( OSStatus )
  309. SSpSource_GetVelocity            (SSpSourceReference     inSourceReference,
  310.                                  TQ3Vector3D *            outVelocity);
  311.  
  312. EXTERN_API_C( OSStatus )
  313. SSpSource_GetActualVelocity        (SSpSourceReference     inSourceReference,
  314.                                  TQ3Vector3D *            outVelocity);
  315.  
  316. EXTERN_API_C( OSStatus )
  317. SSpSource_SetCPULoad            (SSpSourceReference     inSourceReference,
  318.                                  UInt32                 inCPULoad);
  319.  
  320. EXTERN_API_C( OSStatus )
  321. SSpSource_GetCPULoad            (SSpSourceReference     inSourceReference,
  322.                                  UInt32 *                outCPULoad);
  323.  
  324. EXTERN_API_C( OSStatus )
  325. SSpSource_SetMode                (SSpSourceReference     inSourceReference,
  326.                                  UInt32                 inMode);
  327.  
  328. EXTERN_API_C( OSStatus )
  329. SSpSource_GetMode                (SSpSourceReference     inSourceReference,
  330.                                  UInt32 *                outMode);
  331.  
  332. EXTERN_API_C( OSStatus )
  333. SSpSource_SetReferenceDistance    (SSpSourceReference     inSourceReference,
  334.                                  float                     inReferenceDistance);
  335.  
  336. EXTERN_API_C( OSStatus )
  337. SSpSource_GetReferenceDistance    (SSpSourceReference     inSourceReference,
  338.                                  float *                outReferenceDistance);
  339.  
  340. EXTERN_API_C( OSStatus )
  341. SSpSource_SetSize                (SSpSourceReference     inSourceReference,
  342.                                  float                     inLength,
  343.                                  float                     inWidth,
  344.                                  float                     inHeight);
  345.  
  346. EXTERN_API_C( OSStatus )
  347. SSpSource_GetSize                (SSpSourceReference     inSourceReference,
  348.                                  float *                outLength,
  349.                                  float *                outWidth,
  350.                                  float *                outHeight);
  351.  
  352. EXTERN_API_C( OSStatus )
  353. SSpSource_SetAngularAttenuation    (SSpSourceReference     inSourceReference,
  354.                                  float                     inConeAngle,
  355.                                  float                     inConeAttenuation);
  356.  
  357. EXTERN_API_C( OSStatus )
  358. SSpSource_GetAngularAttenuation    (SSpSourceReference     inSourceReference,
  359.                                  float *                outConeAngle,
  360.                                  float *                outConeAttenuation);
  361.  
  362. /*******************************************************************************
  363.  *    OpenGL Calling Convention Call Variants
  364.  ******************************************************************************/
  365. EXTERN_API_C( OSStatus )
  366. SSpListener_SetTransformfv        (SSpListenerReference     inListenerReference,
  367.                                  const float *            inTransform);
  368.  
  369. EXTERN_API_C( OSStatus )
  370. SSpListener_GetTransformfv        (SSpListenerReference     inListenerReference,
  371.                                  float *                outTransform);
  372.  
  373. EXTERN_API_C( OSStatus )
  374. SSpListener_SetPosition3f        (SSpListenerReference     inListenerReference,
  375.                                  float                     inX,
  376.                                  float                     inY,
  377.                                  float                     inZ);
  378.  
  379. EXTERN_API_C( OSStatus )
  380. SSpListener_SetPositionfv        (SSpListenerReference     inListenerReference,
  381.                                  const float *            inPosition);
  382.  
  383. EXTERN_API_C( OSStatus )
  384. SSpListener_GetPositionfv        (SSpListenerReference     inListenerReference,
  385.                                  float *                outPosition);
  386.  
  387. EXTERN_API_C( OSStatus )
  388. SSpListener_SetOrientation3f    (SSpListenerReference     inListenerReference,
  389.                                  float                     inX,
  390.                                  float                     inY,
  391.                                  float                     inZ);
  392.  
  393. EXTERN_API_C( OSStatus )
  394. SSpListener_SetOrientationfv    (SSpListenerReference     inListenerReference,
  395.                                  const float *            inOrientation);
  396.  
  397. EXTERN_API_C( OSStatus )
  398. SSpListener_GetOrientationfv    (SSpListenerReference     inListenerReference,
  399.                                  float *                outOrientation);
  400.  
  401. EXTERN_API_C( OSStatus )
  402. SSpListener_SetUpVector3f        (SSpListenerReference     inListenerReference,
  403.                                  float                     inX,
  404.                                  float                     inY,
  405.                                  float                     inZ);
  406.  
  407. EXTERN_API_C( OSStatus )
  408. SSpListener_SetUpVectorfv        (SSpListenerReference     inListenerReference,
  409.                                  const float *            inUpVector);
  410.  
  411. EXTERN_API_C( OSStatus )
  412. SSpListener_GetUpVectorfv        (SSpListenerReference     inListenerReference,
  413.                                  float *                outUpVector);
  414.  
  415. EXTERN_API_C( OSStatus )
  416. SSpListener_SetCameraPlacementfv (SSpListenerReference     inListenerReference,
  417.                                  const float *            inCameraLocation,
  418.                                  const float *            inPointOfInterest,
  419.                                  const float *            inUpVector);
  420.  
  421. EXTERN_API_C( OSStatus )
  422. SSpListener_GetCameraPlacementfv (SSpListenerReference     inListenerReference,
  423.                                  float *                outCameraPlacement,
  424.                                  float *                outPointOfInterest,
  425.                                  float *                outUpVector);
  426.  
  427. EXTERN_API_C( OSStatus )
  428. SSpListener_SetVelocity3f        (SSpListenerReference     inListenerReference,
  429.                                  float                     inX,
  430.                                  float                     inY,
  431.                                  float                     inZ);
  432.  
  433. EXTERN_API_C( OSStatus )
  434. SSpListener_SetVelocityfv        (SSpListenerReference     inListenerReference,
  435.                                  const float *            inVelocity);
  436.  
  437. EXTERN_API_C( OSStatus )
  438. SSpListener_GetVelocityfv        (SSpListenerReference     inListenerReference,
  439.                                  float *                outVelocity);
  440.  
  441. EXTERN_API_C( OSStatus )
  442. SSpListener_GetActualVelocityfv    (SSpListenerReference     inListenerReference,
  443.                                  float *                outVelocity);
  444.  
  445. EXTERN_API_C( OSStatus )
  446. SSpSource_SetTransformfv        (SSpSourceReference     inSourceReference,
  447.                                  const float *            inTransform);
  448.  
  449. EXTERN_API_C( OSStatus )
  450. SSpSource_GetTransformfv        (SSpSourceReference     inSourceReference,
  451.                                  float *                outTransform);
  452.  
  453. EXTERN_API_C( OSStatus )
  454. SSpSource_SetPosition3f            (SSpSourceReference     inSourceReference,
  455.                                  float                     inX,
  456.                                  float                     inY,
  457.                                  float                     inZ);
  458.  
  459. EXTERN_API_C( OSStatus )
  460. SSpSource_SetPositionfv            (SSpSourceReference     inSourceReference,
  461.                                  const float *            inPosition);
  462.  
  463. EXTERN_API_C( OSStatus )
  464. SSpSource_GetPositionfv            (SSpSourceReference     inSourceReference,
  465.                                  float *                outPosition);
  466.  
  467. EXTERN_API_C( OSStatus )
  468. SSpSource_SetOrientation3f        (SSpSourceReference     inSourceReference,
  469.                                  float                     inX,
  470.                                  float                     inY,
  471.                                  float                     inZ);
  472.  
  473. EXTERN_API_C( OSStatus )
  474. SSpSource_SetOrientationfv        (SSpSourceReference     inSourceReference,
  475.                                  const float *            inOrientation);
  476.  
  477. EXTERN_API_C( OSStatus )
  478. SSpSource_GetOrientationfv        (SSpSourceReference     inSourceReference,
  479.                                  float *                outOrientation);
  480.  
  481. EXTERN_API_C( OSStatus )
  482. SSpSource_SetUpVector3f            (SSpSourceReference     inSourceReference,
  483.                                  float                     inX,
  484.                                  float                     inY,
  485.                                  float                     inZ);
  486.  
  487. EXTERN_API_C( OSStatus )
  488. SSpSource_SetUpVectorfv            (SSpSourceReference     inSourceReference,
  489.                                  const float *            inUpVector);
  490.  
  491. EXTERN_API_C( OSStatus )
  492. SSpSource_GetUpVectorfv            (SSpSourceReference     inSourceReference,
  493.                                  float *                outUpVector);
  494.  
  495. EXTERN_API_C( OSStatus )
  496. SSpSource_SetCameraPlacementfv    (SSpSourceReference     inSourceReference,
  497.                                  const float *            inCameraLocation,
  498.                                  const float *            inPointOfInterest,
  499.                                  const float *            inUpVector);
  500.  
  501. EXTERN_API_C( OSStatus )
  502. SSpSource_GetCameraPlacementfv    (SSpSourceReference     inSourceReference,
  503.                                  float *                outCameraPlacement,
  504.                                  float *                outPointOfInterest,
  505.                                  float *                outUpVector);
  506.  
  507. EXTERN_API_C( OSStatus )
  508. SSpSource_SetVelocity3f            (SSpSourceReference     inSourceReference,
  509.                                  float                     inX,
  510.                                  float                     inY,
  511.                                  float                     inZ);
  512.  
  513. EXTERN_API_C( OSStatus )
  514. SSpSource_SetVelocityfv            (SSpSourceReference     inSourceReference,
  515.                                  const float *            inVelocity);
  516.  
  517. EXTERN_API_C( OSStatus )
  518. SSpSource_GetVelocityfv            (SSpSourceReference     inSourceReference,
  519.                                  float *                outVelocity);
  520.  
  521. EXTERN_API_C( OSStatus )
  522. SSpSource_GetActualVelocityfv    (SSpSourceReference     inSourceReference,
  523.                                  float *                outVelocity);
  524.  
  525. #endif  /* TARGET_CPU_PPC */
  526.  
  527.  
  528. /*******************************************************************************
  529.  *    LATE-BREAKING NEWS
  530.  *
  531.  *    After the documentation was completed, it was decided that the SSpSetup
  532.  *    were not specific enough.  We renamed them to SSpSpeakerSetup.  These
  533.  *    #defines allow code to be written per the documentation.  But please use
  534.  *    the new, longer names, as the #defines will be removed in a later release.
  535.  ******************************************************************************/
  536. #define SSpConfigureSetup        SSpConfigureSpeakerSetup
  537.  
  538. #define siSSpSetup                siSSpSpeakerSetup
  539. #define SSpSetupData            SSpSpeakerSetupData
  540.  
  541.  
  542. /*******************************************************************************
  543.  *    MORE LATE-BREAKING NEWS
  544.  *
  545.  *    The SndGetInfo selector siSSpFilterVersion and datatype SSpFilterVersionData
  546.  *    have been removed in favor of an alternate way of accessing filter version
  547.  *    information.  The following function may be used for this purpose.
  548.  *******************************************************************************
  549. // **************************** GetSSpFilterVersion ****************************
  550. // Finds the manufacturer and version number of the SoundSprocket filter that
  551. // may be installed.  inManufacturer should be the manufacturer code specified
  552. // at the installation time, which may be zero to allow any manufacturer.
  553. // If no error is encountered, outManufacturer is set to the actual manufacturer
  554. // code and outMajorVersion and outMinorVersion are set to the component
  555. // specification level and manufacturer's implementation revision, respectively.
  556. OSStatus GetSSpFilterVersion(
  557.     OSType                    inManufacturer,
  558.     OSType*                    outManufacturer,
  559.     UInt32*                    outMajorVersion,
  560.     UInt32*                    outMinorVersion)
  561. {
  562.     OSStatus                err;
  563.     ComponentDescription    description;
  564.     Component                componentRef;
  565.     UInt32                    vers;
  566.     
  567.     // Set up the component description
  568.     description.componentType            = kSoundEffectsType;
  569.     description.componentSubType        = kSSpLocalizationSubType;
  570.     description.componentManufacturer    = inManufacturer;
  571.     description.componentFlags            = 0;        
  572.     description.componentFlagsMask        = 0;    
  573.     
  574.     // Find a component matching the description
  575.     componentRef = FindNextComponent(nil, &description);
  576.     if (componentRef == nil)  return couldntGetRequiredComponent;
  577.     
  578.     // Get the component description (for the manufacturer code)
  579.     err = GetComponentInfo(componentRef, &description, nil, nil, nil);
  580.     if (err != noErr)  return err;
  581.     
  582.     // Get the version composite
  583.     vers = (UInt32) GetComponentVersion((ComponentInstance) componentRef);
  584.     
  585.     // Return the results
  586.     *outManufacturer = description.componentManufacturer;
  587.     *outMajorVersion = HiWord(vers);
  588.     *outMinorVersion = LoWord(vers);
  589.     
  590.     return noErr;
  591. }
  592. *******************************************************************************/
  593.  
  594.  
  595.  
  596. #if PRAGMA_STRUCT_ALIGN
  597.     #pragma options align=reset
  598. #elif PRAGMA_STRUCT_PACKPUSH
  599.     #pragma pack(pop)
  600. #elif PRAGMA_STRUCT_PACK
  601.     #pragma pack()
  602. #endif
  603.  
  604. #ifdef PRAGMA_IMPORT_OFF
  605. #pragma import off
  606. #elif PRAGMA_IMPORT
  607. #pragma import reset
  608. #endif
  609.  
  610. #ifdef __cplusplus
  611. }
  612. #endif
  613.  
  614. #endif /* __SOUNDSPROCKET__ */
  615.  
  616.